/**
 * 
 */
package br.gov.sjc.dao;

import java.util.ArrayList;
import java.util.List;

import br.gov.sjc.classes.TrabalhoOFR;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;


/**
 * @author rodrigo.ramos
 * @tutorial http://yuriadamsmaia.wordpress.com/2011/03/30/desenvolver-para-android-persistencia-com-sqlite-i-criando-o-modelo-e-dao/
 */
public class TrabalhoOFRDAO  {
	private SQLiteDatabase database;
    private BaseDAO dbHelper;
	
	//Campos da tabela
	private static final String[] COLS = {"_id", 
		"SiasN", "idMembro", "Fonte","Valor","Comprovante"};
    
	/**
	 * Constructor
	 */
	public TrabalhoOFRDAO(Context context) {
		dbHelper = new BaseDAO(context);
	}
	
    public void open() throws SQLException {
        database = dbHelper.getWritableDatabase();
    }
    public void close() {
        dbHelper.close();
    }
	
	public long inserir(TrabalhoOFR trabalhoofr){
		ContentValues valores = new ContentValues();
		valores.put(BaseDAO.TRABALHOOFR_SIASN, String.valueOf(trabalhoofr.getSiasN()));
		valores.put(BaseDAO.TRABALHOOFR_IDMEMBRO, String.valueOf(trabalhoofr.getIdMembro()));
		valores.put(BaseDAO.TRABALHOOFR_FONTE, trabalhoofr.getFonte());
		valores.put(BaseDAO.TRABALHOOFR_VALOR, trabalhoofr.getValor());
		valores.put(BaseDAO.TRABALHOOFR_COMPROVANTE, trabalhoofr.getComprovante());

		return database.insert(BaseDAO.TBL_TRABALHOOFR, null, valores);
	}
	
	public int alterar(TrabalhoOFR trabalhoofr) {
		long id = trabalhoofr.get_id();
		ContentValues valores = new ContentValues();
		
		valores.put("SiasN", String.valueOf(trabalhoofr.getSiasN()));
		valores.put("idMembro", String.valueOf(trabalhoofr.getIdMembro()));
		valores.put("Fonte", trabalhoofr.getFonte());
		valores.put("Valor", trabalhoofr.getValor());
		valores.put("Comprovante", trabalhoofr.getComprovante());
		
		return database.update(BaseDAO.TBL_TRABALHOOFR, valores, BaseDAO.TRABALHOOFR_ID + "="+ id, null);
		
		
	}
	
    public void Excluir(TrabalhoOFR pValue) {
        long id = pValue.get_id();
         
        //Exclui o registro com base no ID
        database.delete(BaseDAO.TBL_TRABALHOOFR,BaseDAO.TRABALHOOFR_ID+" = " + id, null);
    }

	public List<TrabalhoOFR> Consultar(int SiasN, int idMembro){
		List<TrabalhoOFR> lista = new ArrayList<TrabalhoOFR>();
		
		//Consulta para trazer todos os dados de cada membro da tabela _____ ordenados pela coluna ______ 
        Cursor cursor = database.query(BaseDAO.TBL_TRABALHOOFR, COLS, 
        		"SiasN=? AND idMembro=?", new String[]{""+SiasN,""+idMembro}, null, null, BaseDAO.TRABALHOOFR_SIASN);
        cursor.moveToFirst();
		//Cursor c = getWritableDatabase().query(TABELA, COLS, "SiasN=? AND idMembro=?", new String[]{""+SiasN,""+idMembro}, null, null, null);
        while (!cursor.isAfterLast()) {
        	TrabalhoOFR lTrabalhoOFR = cursorToTrabalhoOFR(cursor);
        	lista.add(lTrabalhoOFR);
            cursor.moveToNext();
        }

		cursor.close();
		return lista;
	}

	//Converter o Cursor de dados no objeto POJO ContatoVO
    private TrabalhoOFR cursorToTrabalhoOFR(Cursor cursor) {
    	TrabalhoOFR lTrabalhoOFR = new TrabalhoOFR();
    	lTrabalhoOFR.set_id(cursor.getInt(0));
    	lTrabalhoOFR.setSiasN(cursor.getString(1));
    	lTrabalhoOFR.setIdMembro(cursor.getString(2));
    	lTrabalhoOFR.setFonte(cursor.getString(3));
    	lTrabalhoOFR.setValor(cursor.getString(4));
    	lTrabalhoOFR.setComprovante(cursor.getString(5));
        return lTrabalhoOFR;
    }

	



}
